package com.zsl.dao;

import com.zsl.model.OrderItem;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

public interface OrderItemDao {
    /**
     * 获取订单的条目数量
     * 订单的信息
     *
     * @param whereColumn 条件字符串
     */
    public String getOrderItemCount(String[] whereColumn, String[] whereValue) throws SQLException;

    /**
     * 获取订单条目信息
     * @param whereColumn 请求列
     *                    (可唯一确定)
     *                    orderitem.id
     *                    (可唯一确定)
     *                    orderInfo_id与book_id
     * @param whereValue    查询字符串
     * @return 订单条目表
     */
    public List<OrderItem> getOrderItem(String[] whereColumn, String[] whereValue) throws SQLException;


    /**
     * 插入多个条目
     *
     * @param orderItems 订单条目
     *                   必须包含字段：
     *                   id
     *                   num
     *                   price
     *                   orderInfo_id
     *                   book_id
     * @return Map<String, Object>
     * List<Integer> line 影响行数
     * List<Float> orderItem_id 条目号
     * List<Integer> price 条目价格
     */
    public Map<String, Object> insertOrderItem(List<OrderItem> orderItems);

    /**
     * 更新多个订单条目信息
     * 默认使用主键更新，不支持其他方式
     * @param orderItems 订单条目
     * @param selectModel 选择模式
     *                    模式1 只更新num与price
     * @return  line-影响行数
     * orderitem_id-订单条目id
     */
    public Map<String, Object> updateOrderItemById(List<OrderItem> orderItems,int selectModel);

    public Integer deleteOrderItemById(String item_id);
}
